home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 2: CDPD 1 / Almathera Ten on Ten - Disc 2: CDPD 1.iso / pd / 026-050 / 049 / qmouse / qmouse.asm < prev    next >
Assembly Source File  |  1995-03-13  |  3KB  |  57 lines

  1. **********************************************************************
  2. *    Program: QMOUSE - CLI "IF" test for mouse button
  3. *    Author:  Robert Rethemeyer, Sunnyvale, CA
  4. *    Date:    10/05/86
  5. *    Status:  RELEASED TO THE PUBLIC DOMAIN, "AS-IS"
  6. **********************************************************************
  7. * QMOUSE is a program to query the status of the left mouse button.
  8. * It sets a return code of 0 if the button is NOT pressed,
  9. * or a return code of 8 if it IS pressed.  This return code can
  10. * be used as a WARN condition in a CLI "execute" file.
  11. *
  12. * QMOUSE provides a way to optionally alter the way that
  13. * "startup-sequence" operates when booting the machine.
  14. * For example, some DOS 1.2 users load the most frequently used
  15. * commands into RAM disk in the startup-sequence.  Since that
  16. * lessens the total memory available, some programs will not run.
  17. * These users usually must keep a separate Workbench disk which
  18. * does not load the RAM.  Using QMOUSE and an IF statement in the
  19. * startup-sequence, the loading of RAM can be conditionally skipped.
  20. * Do nothing during the startup to load the RAM as usual;  hold
  21. * down the button to not load the RAM if extra RAM will be needed.
  22. * Imaginative users may think of other uses for QMOUSE.
  23. *
  24. * When pressing the button, be sure the mouse pointer is off of the
  25. * drag bar, otherwise the execution of the file pauses.
  26. * Here is a basic example of how to use QMOUSE in the startup-sequence:
  27. *
  28. *          echo "Workbench 1.2"
  29. *          ... etc....
  30. *          echo "<Hold down mouse-left for more RAM>"
  31. *          wait 1 sec
  32. *          QMouse
  33. *          IF NOT WARN
  34. *          echo "Loading RAM:C"
  35. *          makedir RAM:C
  36. *          path ....etc...
  37. *          copy c:dir to ram:c
  38. *          copy ....etc...
  39. *          ELSE  
  40. *          echo "RAM:C not present"
  41. *          ENDIF
  42. *         
  43. ********************* Begin text of program **************************
  44.          NOLIST
  45.          INCLUDE "hardware/cia.i"
  46.          LIST
  47.          XREF    _ciaa                 * location of 8520 chips
  48. **********************************************************************
  49. QMouse:
  50.          MOVEA.L #_ciaa,a3             * address of chip register
  51.          MOVE.B  ciapra(a3),d0         * get register data
  52.          AND.L   #CIAF_GAMEPORT0,d0    * mask out mouse button bit
  53.          EOR.B   #CIAF_GAMEPORT0,d0    * invert it
  54.          LSR.B   #3,d0                 * shift to bit 3
  55.          RTS                           * return with bit as return code
  56.          END
  57.